package com.bzkj.document.service.finishedproductentry;

import com.bzkj.common.core.domain.AjaxResult;
import com.bzkj.common.core.domain.model.LoginUser;
import com.bzkj.common.core.page.TableDataInfo;
import com.bzkj.common.domain.NccRequestDTO;
import com.bzkj.document.domain.DocConfirmDTO;
import com.bzkj.document.domain.finishedproduct.dto.FinishedProductDTO;

import java.util.HashMap;

/**
 * @projectName: bzkj-wms
 * @package: com.bzkj.document.service.FinishedProductEntry.impl
 * @className: FinishedProductEntryService
 * @description: 产成品入库服务层接口
 * @author: C1309
 * @createDate: 2024年11月25日
 * @version: v1.0
 */
public interface FinishedProductEntryService {

    /**
     * 查询NCC产成品入库单
     *
     * @param nccRequestDTO 查询条件
     * @return 查询结果
     */
    TableDataInfo selectNccFinishedProductEntry(NccRequestDTO nccRequestDTO);

    /**
     * NCC产成品入库单存入WMS中
     * @param docConfirmDTO 产成品入库单
     * @return 操作结果
     */
    AjaxResult insertFinishedProductEntry(DocConfirmDTO docConfirmDTO);

    /**
     * 更新NCC产成品入库单
     *
     * @param responseBody 产成品入库单数据
     * @param loginUser    登录用户
     * @param isSign       是否跳过单据校验
     * @return 操作结果
     */
    AjaxResult updateFinishedProductEntry(HashMap<String, Object> responseBody, LoginUser loginUser,boolean isSign);

    /**
     * 获取本地已经确认的产成品入库单
     * @param finishedProductDTO 查询条件
     * @param pageNum  当前页
     * @param pageSize 每页显示数量
     * @return 查询结果
     */
    TableDataInfo selectFinishedProductEntry(FinishedProductDTO finishedProductDTO, int pageNum, int pageSize);
}
